package cn.csc.module.order.controller.admin.returnsapply.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigInteger;

/**
* 售后申请 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class OrderReturnsApplyBaseVO {

    @ApiModelProperty(value = "订单单号", required = true)
    @NotNull(message = "订单单号不能为空")
    private String orderId;

    @ApiModelProperty(value = "子订单编码", required = true)
    @NotNull(message = "子订单编码不能为空")
    private String orderDetailId;

    @ApiModelProperty(value = "售后单号", required = true)
    @NotNull(message = "售后单号不能为空")
    private String returnNo;

    @ApiModelProperty(value = "用户编码", required = true)
    @NotNull(message = "用户编码不能为空")
    private BigInteger userId;

    @ApiModelProperty(value = "类型 0 仅退款 1退货退款", required = true)
    @NotNull(message = "类型 0 仅退款 1退货退款不能为空")
    private Byte state;

    @ApiModelProperty(value = "货物状态 0:已收到货 1:未收到货", required = true)
    @NotNull(message = "货物状态 0:已收到货 1:未收到货不能为空")
    private Byte productStatus;

    @ApiModelProperty(value = "退换货原因")
    private String why;

    @ApiModelProperty(value = "审核状态 -1 拒绝 0 未审核 1审核通过", required = true)
    @NotNull(message = "审核状态 -1 拒绝 0 未审核 1审核通过不能为空")
    private Byte status;

    @ApiModelProperty(value = "审核时间", required = true)
    @NotNull(message = "审核时间不能为空")
    private Integer auditTime;

    @ApiModelProperty(value = "审核原因")
    private String auditWhy;

    @ApiModelProperty(value = "备注")
    private String note;

}
